﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System.Data;
using System.Web.UI.WebControls;
using System.Data.SqlClient;


/// <summary>
/// Summary description for Class1
/// </summary>
public sealed class DRMCommonUtils
{
    #region global variables
    private static string connectionString = webapp4U.Configuration.CurrentConnectionString;
    private static string error = DRMConstants.EMPTY_STRING;
    #endregion


    #region constructor
    private DRMCommonUtils()
    {
        //private constructor for util class
    }
    #endregion


    #region load data cho dropdownlist
    /// <summary>
    /// <para>
    /// - Load các giá trị của VAT vào dropdownlist :
    /// </para>
    /// <para> 
    ///   + Mã số : purchasetaxkey
    /// </para>
    /// <para>  
    ///   + Mô tả/ tên : purchasetaxdesc
    /// </para>
    /// <para>
    /// - Store procedure name : ls_getVATTypeList
    /// </para>
    /// <para>
    /// * Trả về : không trả về
    /// </para>
    /// </summary>
    

    /// <summary>
    /// <para>
    /// - Load các giá trị của ngành hàng vào dropdownlist :
    /// </para>
    /// <para> 
    ///   + Mã số : commodkey
    /// </para>
    /// <para>  
    ///   + Mô tả/ tên : description
    /// </para>
    /// <para>
    /// - Store procedure name : ls_getCategoryList
    /// </para>
    /// <para>
    /// * Trả về : không trả về
    /// </para>
    /// </summary>
    public static void LoadNganhHangDropDowList(DropDownList ddlNganhHang, string logURL,string sitecode)
    {
        bindDropDownListWithAllData(ddlNganhHang, logURL, "ls_getCategoryList", "commodkey", "description", sitecode);
    }


    /// <summary>
    /// <para>
    /// - Load các giá trị của nhãn hiệu vào dropdownlist :
    /// </para>
    /// <para> 
    ///   + Mã số : MaNhanHieu
    /// </para>
    /// <para>  
    ///   + Mô tả/ tên : NhanHieu
    /// </para>
    /// <para>
    /// - Store procedure name : ls_getBrandList
    /// </para>
    /// <para>
    /// * Trả về : không trả về
    /// </para>
    /// </summary>
    public static void LoadNhanHieuDropDowList(DropDownList ddlNhanHieu, string logURL,string sitecode)
    {
        bindDropDownListWithAllData(ddlNhanHieu, logURL, "ls_getBrandList", "MaNhanHieu", "NhanHieu",sitecode);
    }


    /// <summary>
    /// <para>
    /// - Load các giá trị của sản phẩm vào dropdownlist :
    /// </para>
    /// <para> 
    ///   + Mã số : MaSanPham
    /// </para>
    /// <para>  
    ///   + Mô tả/ tên : SanPham
    /// </para>
    /// <para>
    /// - Store procedure name : ls_getProductList
    /// </para>
    /// <para>
    /// * Trả về : không trả về
    /// </para>
    /// </summary>
    public static void LoadProductDropDowList(DropDownList ddlProduct, string logURL,string sitecode)
    {
        bindDropDownListWithAllData(ddlProduct, logURL, "ls_getProductList", "MaSanPham", "SanPham", sitecode);
    }


    /// <summary>
    /// <para>
    /// - Load các giá trị của trạng thái mặt hàng vào dropdownlist :
    /// </para>
    /// <para> 
    ///   + Mã số : mVal
    /// </para>
    /// <para>  
    ///   + Mô tả/ tên : mText
    /// </para>
    /// <para>
    /// - Store procedure name : ls_getItemStatusList
    /// </para>
    /// <para>
    /// * Trả về : không trả về
    /// </para>
    /// </summary>
   
    /// <summary>
    /// <para>
    /// - Load các giá trị của VAT vào dropdownlist :
    /// </para>
    /// <para> 
    ///   + Mã số : purchasetaxkey
    /// </para>
    /// <para>  
    ///   + Mô tả/ tên : purchasetaxdesc
    /// </para>
    /// <para>
    /// - Store procedure name : ls_getVATTypeList
    /// </para>
    /// <para>
    /// * Trả về : không trả về
    /// </para>
    /// </summary>
    public static void LoadTTPPDropDowList(DropDownList LoadTTPP, string logURL,string sitecode)
    {
        bindDropDownListWithAllData(LoadTTPP, logURL, "Tr_GetTTPPListFromMis", "Sitecode", "sitename", sitecode);
    }


    /// <summary>
    /// <para>
    /// - Xóa data trong 1 dropdownlist :
    /// </para>
    /// <para>
    /// - Tham số : DropDownList ddl
    /// </para>
    /// <para>
    /// * Trả về : không trả về
    /// </para>
    /// </summary>
    /// <param name="ddl"></param>
    public static void unBindDropDownList(DropDownList ddl)
    {
        ddl.DataSource = null;
        ddl.DataBind();
    }
    #endregion


    #region private methods
    /// <summary>
    /// <para>
    /// - Load tất cả các giá trị(code và description) của một table đổ vào dropdownlist :
    /// </para>
    /// <para>
    /// -Tham số : 
    /// </para>
    /// <para> 
    ///   + ddl - DropDownList
    /// </para>
    /// <para>  
    ///   + logURL - string
    /// </para>
    /// <para>  
    ///   + storeProcedureName - string
    /// </para>
    /// <para>  
    ///   + code - string
    /// </para>
    /// <para>  
    ///   + description - string
    /// </para>
    /// <para>
    /// <para>
    /// * Không loại bỏ các item đã bị delete(về mặt logical)
    /// </para>
    /// * Trả về : không trả về
    /// </para>
    /// </summary>
    private static void bindDropDownListWithAllData(DropDownList ddl, string logURL, string storeProcedureName, string code, string description,string sitecode)
    {
        ClassExecute.ClassExecute dt;
        dt = new ClassExecute.ClassExecute();
        try
        {

            DataTable db = dt.Get_Data_DataTable(connectionString, ref error, storeProcedureName, CommandType.StoredProcedure,
                new SqlParameter("@sitecode",sitecode));
            dt.BindDropDownList(db, ddl, code, description);
        }
        catch (Exception ex)
        {
            string method = System.Reflection.MethodBase.GetCurrentMethod().Name;
            dt.WriteErrorLog(logURL, ex.Message, method);
        }
    }    
    #endregion
}